unsigned int

更新时间:2023-11-23 10:01

int整型计算机编程语言中的一种基本数据类型,通常反映了所用机器中整数的最自然长度。int整型可以划分为带符号的(signed)和无符号的(unsigned)两种,带符号类型可以表示正数、负数或0,无符号类型则仅能表示大于等于0的值。在默认情况下声明的整型变量都是有符号的类型,如果需声明无符号类型的话就需要在类型前加上unsigned关键字。

unsigned int数据类型

定义

unsigned int是计算机编程语言中一种表示大于等于0的整数类型。

取值范围

针对不同的计算机系统,unsigned int类型所占的比特数不同,它所能表示的数据范围也不一样。具体的取值范围如下:

应用举例

16位系统中的unsigned int

16位系统中一个int能存储的数据的范围为:-32768~32767,而unsigned int能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。所以如果整数的最高位是1,有符号数的话就是负数;如果是无符号数,则都表示正数。另外,unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int。

MySQL中的unsigned int

sql语句中,创建一个数据表时:

其中的UNSIGNED表示,数据项server_id的数据范围为0~4294967295。

注意事项

整数溢出

如果整数太大,超出了整数类型的范围会产生溢出现象。下面分别将有符号整型和无符号整型设置为最大允许值加略大一些的值,观察溢出现象:

由以上结果可知,unsigned int溢出后数值回到“起始点”0,而int溢出后数值回到“起始点”-2147483648。应当注意的是,当变量溢出时,系统并没有给出提示,所以编程时需要程序员自己处理这个问题。

切勿混用带符号类型和无符号类型

如果表达式里既有带符号类型又有无符号类型,当带符号类型取值为负时会出现异常结果,这是因为带符号数会自动地转换成为无符号数。例如一个形如 a*b 的式子中,如果 a=-1,b=1,而且a,b都是int类型,则表达式的值显然为-1,然而如果a是int,而b是unsigned int,则结果须视在当前机器上int所占位数而定,在32位计算机系统中,结果是4294967295。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}